export interface ChatMessage {
  /**序号*/
  index: number;
  /**
   * 消息来源
   * caller-我方（左侧）
   * called-对方（右侧）
   */
  role: 'caller' | 'called' | 'man';
  /**
   * 消息
   */
  message: string;
  /**
   * 消息语言地址
   */
  sound: string;
  /**
   * 未理解：0：未理解，1：正常
   */
  status: number;
}

export interface ChatProp {
  /**
   * 记录消息
   */
  messages?: ChatMessage[];
  /**
   * 是否展示通话记录header，默认为true
   */
  showStatusHeader?: boolean;
  /**
   * 是否在头部展示全部录音播放，默认为false
   */
  showHeadBar?: boolean;
  /**
   * 是否提供音频下载，默认为false
   */
  showDownload?: boolean;
  /**
   *  头部录音的url
   */
  talkRecord?: string;
  /**
   * 通话号码（showStatusHeader为true时必填）
   */
  phoneNum?: string;
  /**
   * 呼叫状态（showStatusHeader为true时必填）
   */
  /** 号码状态，0-未呼，1-呼叫中，2-等待坐席，3-通话中 */
  status?: number;
  /**
   * 呼叫时间（计算实时通话时间：当前时间-呼叫时间）
   */
  callTime?: string;
  /**
   * 会话id
   */
  callRecordId?: string;
  /**
   * 呼叫中心id
   */
  centerCallId?: string;
  /**
   * call串行id
   */
  callSerialNumber?: string;
  /**
   * 是否展示“查看历史”
   */
  showHistoryLink?: boolean;
  /**
   * 类型：为空，默认是【任务外呼】通话记录；'record'，【流程调试】通话记录
   */
  chatType?: string;
  /**
   * 获得历史记录后的回调
   */
  onGetHistory?: (msg: ChatMessage[], callRecordId: string, callSerialNumber?: string) => any;
  /**
   * 下一步-人工介入
   */
  goNext?: (url?: string, callId?: string, type?: string) => void;
}

export interface ChatState extends ChatProp {
  inCall: boolean;
  /**
   * 当前播放中，图标提示
   */
  playings: Array<boolean>;
  /**是否转人工组件触发 */
  isTransferShow?: boolean;
}
